#include <iostream>

using namespace std;

int task[15][15];
bool use[15];
int ans = 10005;
int N;

// 
void dfs(int x, int t) {
	if(x == N) {
		if(t < ans) {
			ans = t;
		}
		
		return ;
	}
	
	for(int i = 0; i < N; i++) {
		if(!use[i]) {
			use[i] = 1;
			dfs(x + 1, t + task[x][i]);
			use[i] = 0;
		}
	}
}

int main()
{
	cin >> N;
	for(int i = 0; i < N; i++) {
		for(int j = 0; j < N; j++) {
			cin >> task[i][j];
		}
	}
	
	
	dfs(0, 0);
	
	cout << ans << endl;
	
	return 0;
}
